#ifndef MATRIX4
#define MATRIX4
#include "Vector4.h"
#include "Vector3.h"

class Matrix4 {
    public:
        Matrix4();
        void setMatrix(float, float, float, float,
                    float, float, float, float,
                    float, float, float, float,
                    float, float, float, float);
        void setIdentity();
        void setTranslate(float, float, float);
        void setRotateX(double);
        void setRotateY(double);
        void setRotateZ(double);
        void setScale(float);
        Matrix4 mult(Matrix4);
        Vector4 Transform(Vector4);
        float _11, _12, _13, _14;
        float _21, _22, _23, _24;
        float _31, _32, _33, _34;
        float _41, _42, _43, _44;
    private:
};

std::ostream& operator<< (std::ostream&, const Matrix4);

#endif
